package com.cn.project;

/**
 * @author he_ls
 * @since 2024/11/1 11:06
 **/
public class T01_CodeBlock {
    public static void main(String[] args) throws InterruptedException {
//        System.out.println("-----创建对象前-------");
//        Block order = new Block();
//        System.out.println("-----创建对象后-------");
//
//        order.method();

//        int n2 = Block.n2;
//        System.out.println("---------");
//        Block.method1();

        new Thread(() -> {
            System.out.println("进入method2线程");
            int n1 = Block.method1();
            System.out.println("----method1-----");
        }).start();

        Thread.sleep(3000);

        new Thread(() -> {
            System.out.println("进入n2线程");
            int n2 = Block.n2;
            System.out.println("----n2-----" + n2);
        }).start();



    }


}

class Block {
    public static void main(String[] args) {
        System.out.println(2);
        /*
          output:
            静态方法
            静态代码块，类加载时执行一次
            33
          第一行：静态属性n2调用method1方法；第二行：类加载时，静态代码块执行一次；第三行：当前线程输出结果；
         */
    }

    public Block() {
        System.out.println("无参构造方法；");
    }

    int n1 = method();

    static int n2 = method2();

    {
        System.out.println("普通代码块,创建对象执行一次");
    }

    static {
        System.out.println("静态代码块，类加载时执行一次");
    }

    public int method() {
        System.out.println("普通方法");
        return 33;
    }

    public static int method1() {
        System.out.println("静态方法method1");
        return 33;
    }
    public static int method2() {
        System.out.println("静态方法method2");
        return 33;
    }
}
